3 %bcond_without apidocs # gtk-doc build
4 %bcond_without cups # CUPS print backend
5 %bcond_without papi # PAPI print backend
6 %bcond_without broadway # Broadway target
7 %bcond_with sysprof # sysprof profiler support
8 %bcond_with typeahead # Typeahead in open dialog
9 %bcond_without wayland # Wayland target
10 %bcond_with cloudproviders # libcloudproviders integration
11 %bcond_without static_libs # static library build
13 Summary: The GIMP Toolkit
14 Summary(cs.UTF-8): Sada nástrojů pro GIMP
15 Summary(de.UTF-8): Der GIMP-Toolkit
16 Summary(fi.UTF-8): GIMP-työkalukokoelma
17 Summary(fr.UTF-8): Le toolkit de GIMP
18 Summary(it.UTF-8): Il toolkit per GIMP
19 Summary(pl.UTF-8): GIMP Toolkit
20 Summary(tr.UTF-8): GIMP ToolKit arayüz kitaplığı
26 Source0: https://download.gnome.org/sources/gtk+/3.24/gtk+-%{version}.tar.xz
27 # Source0-md5: 1c4821835d6ffe7cf5b35c320f89569b
28 Patch0: %{name}-papi.patch
29 Patch1: typeahead.patch
30 Patch2: %{name}-cloudproviders.patch
31 URL: https://www.gtk.org/
32 BuildRequires: at-spi2-atk-devel >= 2.6.0
33 BuildRequires: atk-devel >= 1:2.16.0
34 BuildRequires: autoconf >= 2.62
35 BuildRequires: automake >= 1:1.11
36 # cairo-gobject + cairo-pdf,cairo-ps,cairo-svg
37 BuildRequires: cairo-gobject-devel >= 1.14.0
38 BuildRequires: colord-devel >= 0.1.9
39 %if %{with cups} || %{with papi}
40 BuildRequires: cups-devel >= 1:1.7
42 BuildRequires: docbook-dtd412-xml
43 BuildRequires: docbook-style-xsl-nons
44 BuildRequires: fontconfig-devel
45 BuildRequires: fribidi-devel >= 0.19.7
46 BuildRequires: gdk-pixbuf2-devel >= 2.31.0
47 BuildRequires: gettext-tools >= 0.19.7
48 BuildRequires: glib2-devel >= 1:2.57.2
49 BuildRequires: gobject-introspection-devel >= 1.39.0
51 BuildRequires: gtk-doc >= 1.20
52 BuildRequires: gtk-doc-automake >= 1.20
54 BuildRequires: harfbuzz-devel >= 0.9
55 BuildRequires: iso-codes
56 %{?with_cloudproviders:BuildRequires: libcloudproviders-devel >= 0.2.5}
57 BuildRequires: libepoxy-devel >= 1.4
58 BuildRequires: libstdc++-devel
59 BuildRequires: libtool >= 2:2.2.6
60 BuildRequires: libxml2-progs >= 1:2.6.31
61 BuildRequires: libxslt-progs >= 1.1.20
62 BuildRequires: pango-devel >= 1:1.41.0
63 %{?with_papi:BuildRequires: papi-devel}
64 BuildRequires: perl-base
65 BuildRequires: pkgconfig
66 BuildRequires: rpm-build >= 4.6
67 BuildRequires: rpm-pythonprov
68 BuildRequires: rpmbuild(macros) >= 1.752
69 BuildRequires: sed >= 4.0
70 BuildRequires: sqlite3-devel
71 %{?with_sysprof:BuildRequires: sysprof-devel >= 3.33.2}
72 BuildRequires: tar >= 1:1.22
73 BuildRequires: xorg-lib-libX11-devel >= 1.5.0
74 BuildRequires: xorg-lib-libXcomposite-devel
75 BuildRequires: xorg-lib-libXcursor-devel
76 BuildRequires: xorg-lib-libXdamage-devel
77 BuildRequires: xorg-lib-libXext-devel
78 BuildRequires: xorg-lib-libXfixes-devel
79 BuildRequires: xorg-lib-libXft-devel
80 BuildRequires: xorg-lib-libXi-devel >= 1.8.0
81 BuildRequires: xorg-lib-libXinerama-devel
82 BuildRequires: xorg-lib-libXrandr-devel >= 1.5.0
83 BuildRequires: xorg-lib-libXrender-devel
85 %{?with_broadway:BuildRequires: zlib-devel}
87 # wayland-client, wayland-cursor, wayland-scanner
88 BuildRequires: wayland-devel >= 1.14.91
89 BuildRequires: wayland-egl-devel
90 BuildRequires: wayland-protocols >= 1.14
91 BuildRequires: xorg-lib-libxkbcommon-devel >= 0.2.0
93 Requires: xorg-lib-libX11 >= 1.5.0
94 Requires(post,postun): glib2 >= 1:2.57.2
95 Requires: atk >= 1:2.16.0
96 Requires: cairo-gobject >= 1.14.0
97 Requires: fribidi >= 0.19.7
98 Requires: gdk-pixbuf2 >= 2.31.0
99 Requires: glib2 >= 1:2.57.2
100 %{?with_cloudproviders:Requires: libcloudproviders >= 0.2.5}
101 Requires: libepoxy >= 1.4
102 Requires: pango >= 1:1.41.0
103 %{?with_sysprof:Requires: sysprof >= 3.33.2}
104 Requires: xorg-lib-libXi >= 1.8.0
105 Requires: xorg-lib-libXrandr >= 1.5.0
107 Requires: wayland >= 1.14.91
108 Requires: xorg-lib-libxkbcommon >= 0.2.0
110 # evince is used as gtk-print-preview-command by default
111 Suggests: evince-backend-pdf
113 # cups is used by default if gtk+ is built with cups
114 Suggests: %{name}-cups = %{version}-%{release}
116 Obsoletes: gtk+3-cloudprint < 3.24.30
117 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
119 %define abivers 3.0.0
121 %if "%{_lib}" != "lib"
122 %define libext %(lib="%{_lib}"; echo ${lib#lib})
123 %define pqext -%{libext}
129 GTK+, which stands for the GIMP ToolKit, is a library for creating
130 graphical user interfaces for the X Window System. It is designed to
131 be small, efficient, and flexible. GTK+ is written in C with a very
132 object-oriented approach. GDK (part of GTK+) is a drawing toolkit
133 which provides a thin layer over Xlib to help automate things like
134 dealing with different color depths, and GTK is a widget set for
135 creating user interfaces.
137 %description -l cs.UTF-8
138 Knihovny X původně psané pro GIMP, které nyní používá také řada jiných
141 %description -l da.UTF-8
142 X biblioteker, oprindeligt udviklet til GIMP, men anvendes nu af flere
143 forskellige programmer.
145 %description -l de.UTF-8
146 Die X-Libraries, die ursprünglich für GIMP geschrieben wurden und
147 mittlerweile für eine ganze Reihe anderer Programme benutzt werden.
149 %description -l fr.UTF-8
150 X-kirjastot, jotka alunperin kirjoitettiin GIMP:lle, mutta joita
151 käytetään nyt myös useissa muissakin ohjelmissa.
153 %description -l it.UTF-8
154 Libreria X scritta per GIMP. Viene usata da diversi programmi.
156 %description -l pl.UTF-8
157 GTK+, która to biblioteka stała się podstawą programu GIMP, zawiera
158 funkcje do tworzenia graficznego interfejsu użytkownika pod X Window.
159 Była tworzona z założeniem żeby była mała, efektywna i wygodna. GTK+
160 jest napisane w C z podejściem zorientowanym bardzo obiektowo. GDK
161 (część GTK+) jest warstwą pośrednią pomiędzy Xlib a właściwym GTK
162 zapewniającą pracę niezależnie od głębi koloru (ilości bitów na
163 piksel). GTK (druga część GTK+) jest natomiast już zbiorem różnego
164 rodzaju kontrolek służących do tworzenia interfejsu użytkownika.
166 %description -l tr.UTF-8
167 Başlangıçta GIMP için yazılmış X kitaplıkları. Şu anda başka
168 programlarca da kullanılmaktadır.
170 %package -n gtk-update-icon-cache
171 Summary: Utility to update icon cache used by GTK+ library
172 Summary(pl.UTF-8): Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę GTK+
173 Group: Applications/System
174 Requires: gdk-pixbuf2 >= 2.31.0
175 Requires: glib2 >= 1:2.57.2
177 %description -n gtk-update-icon-cache
178 Utility to update icon cache used by GTK+ library.
180 %description -n gtk-update-icon-cache -l pl.UTF-8
181 Narzędzie do uaktualniania cache'a ikon używanego przez bibliotekę
185 Summary: GTK+ header files and development documentation
186 Summary(cs.UTF-8): Sada nástrojů GIMP a kreslící kit GIMP
187 Summary(da.UTF-8): GIMP Toolkit og GIMP Tegnings-værktøj
188 Summary(de.UTF-8): GIMP Toolkit und GIMP Drawing Kit
189 Summary(fi.UTF-8): Gimp-työkalukokoelma ja Gimp-piirtotyökalut
190 Summary(fr.UTF-8): Toolkit de GIMP (GTK) et Kit de dessin de GIMP (GDK)
191 Summary(it.UTF-8): GIMP Toolkit and GIMP Drawing Kit
192 Summary(pl.UTF-8): Pliki nagłówkowe i dokumentacja do GTK+
193 Summary(tr.UTF-8): GIMP araç takımı ve çizim takımı
194 Group: X11/Development/Libraries
195 Requires: %{name} = %{version}-%{release}
196 Requires: at-spi2-atk-devel >= 2.6.0
197 Requires: atk-devel >= 1:2.16.0
198 Requires: cairo-gobject-devel >= 1.14.0
199 Requires: fribidi-devel >= 0.19.7
200 Requires: gdk-pixbuf2-devel >= 2.31.0
201 Requires: glib2-devel >= 1:2.57.2
202 Requires: pango-devel >= 1:1.41.0
203 Requires: shared-mime-info
204 %{?with_sysprof:Requires: sysprof-devel >= 3.33.2}
206 Requires: wayland-devel >= 1.14.91
207 Requires: wayland-egl-devel
208 Requires: wayland-protocols >= 1.14
209 Requires: xorg-lib-libxkbcommon-devel >= 0.2.0
213 Header files and development documentation for the GTK+ libraries.
215 %description devel -l pl.UTF-8
216 Pliki nagłówkowe i dokumentacja do bibliotek GTK+.
219 Summary: GTK+ static libraries
220 Summary(pl.UTF-8): Biblioteki statyczne GTK+
221 Group: X11/Development/Libraries
222 Requires: %{name}-devel = %{version}-%{release}
225 GTK+ static libraries.
227 %description static -l pl.UTF-8
228 Biblioteki statyczne GTK+
231 Summary: GTK+ API documentation
232 Summary(pl.UTF-8): Dokumentacja API GTK+
234 Requires: gtk-doc-common
238 GTK+ API documentation.
240 %description apidocs -l pl.UTF-8
241 Dokumentacja API GTK+.
244 Summary: GTK+ - example programs
245 Summary(pl.UTF-8): GTK+ - programy przykładowe
246 Group: X11/Development/Libraries
247 Requires(post,postun): glib2 >= 1:2.57.2
248 Requires: %{name}-devel = %{version}-%{release}
250 %description examples
251 GTK+ - example programs.
253 %description examples -l pl.UTF-8
254 GTK+ - przykładowe programy.
257 Summary: CUPS printing module for GTK+
258 Summary(pl.UTF-8): Moduł GTK+ do drukowania przez CUPS
260 Requires: %{name} = %{version}-%{release}
263 CUPS printing module for GTK+.
265 %description cups -l pl.UTF-8
266 Moduł GTK+ do drukowania przez CUPS.
269 Summary: PAPI printing module for GTK+
270 Summary(pl.UTF-8): Moduł GTK+ do drukowania przez PAPI
272 Requires: %{name} = %{version}-%{release}
276 PAPI printing module for GTK+.
278 %description papi -l pl.UTF-8
279 Moduł GTK+ do drukowania przez PAPI.
282 %setup -q -n gtk+-%{version}
284 %if %{with typeahead}
289 %{__sed} -i -e '1s|#!/usr/bin/env python3$|#!%{__python3}|' demos/gtk-demo/geninclude.py
291 # for packaging clean examples
292 # TODO: add am patch to do it like demos/gtk-demo via some configurable dir
293 # NOTE: make install so far installs only demos/gtk-demo
295 cp -a demos examples _examples
297 # upstream used too new wayland for make dist in 3.10.6 - force regeneration
298 touch gdk/wayland/protocol/gtk-shell.xml
301 CPPFLAGS="%{rpmcppflags}%{?with_papi: -I/usr/include/papi}"
302 %{?with_apidocs:%{__gtkdocize}}
309 --disable-silent-rules \
311 %{!?with_papi:--disable-papi} \
312 %{?with_cloudproviders:--enable-cloudproviders} \
313 %{?debug:--enable-debug} \
314 %{__enable_disable apidocs gtk-doc} \
316 %{__enable_disable static_libs static} \
317 %{?with_broadway:--enable-broadway-backend} \
318 %{?with_sysprof:--enable-profiler} \
319 %{?with_wayland:--enable-wayland-backend} \
320 --enable-x11-backend \
323 --with-html-dir=%{_gtkdocdir}
326 democodedir=%{_examplesdir}/%{name}-%{version}/demos/gtk-demo
329 rm -rf $RPM_BUILD_ROOT
330 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/engines
331 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/theming-engines
334 democodedir=%{_examplesdir}/%{name}-%{version}/demos/gtk-demo \
335 DESTDIR=$RPM_BUILD_ROOT
337 touch $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/gtk.immodules
338 install -d $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/modules
340 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
341 cp -a _examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
343 # shut up check-files (static modules and *.la for modules)
344 %{__rm} -r $RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/*/*.la \
345 %{?with_static_libs:$RPM_BUILD_ROOT%{_libdir}/gtk-3.0/%{abivers}/*/*.a}
347 %if "%{_lib}" != "lib"
348 # We need to have 32-bit and 64-bit binaries as they have hardcoded LIBDIR.
349 # (needed when multilib is used)
350 mv $RPM_BUILD_ROOT%{_bindir}/gtk-query-immodules-3.0{,%{pqext}}
353 %{__mv} $RPM_BUILD_ROOT%{_localedir}/{sr@ije,sr@ijekavian}
354 # unsupported by glibc
355 %{__rm} -r $RPM_BUILD_ROOT%{_localedir}/io
357 %{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
359 %find_lang %{name} --all-name
361 %{!?with_apidocs:%{__rm} -r $RPM_BUILD_ROOT%{_gtkdocdir}/{gdk3,gtk3}}
364 rm -rf $RPM_BUILD_ROOT
368 %glib_compile_schemas
370 %{_bindir}/gtk-query-immodules-3.0%{pqext} --update-cache
375 if [ "$1" != "0" ]; then
377 %{_bindir}/gtk-query-immodules-3.0%{pqext} --update-cache
379 %glib_compile_schemas
384 %glib_compile_schemas
387 %glib_compile_schemas
389 %files -f %{name}.lang
390 %defattr(644,root,root,755)
391 %doc AUTHORS NEWS README
392 %{?with_broadway:%attr(755,root,root) %{_bindir}/broadwayd}
393 %attr(755,root,root) %{_bindir}/gtk-launch
394 %attr(755,root,root) %{_bindir}/gtk-query-immodules-3.0%{pqext}
395 %attr(755,root,root) %{_libdir}/libgailutil-3.so.*.*.*
396 %attr(755,root,root) %ghost %{_libdir}/libgailutil-3.so.0
397 %attr(755,root,root) %{_libdir}/libgdk-3.so.*.*.*
398 %attr(755,root,root) %ghost %{_libdir}/libgdk-3.so.0
399 %attr(755,root,root) %{_libdir}/libgtk-3.so.*.*.*
400 %attr(755,root,root) %ghost %{_libdir}/libgtk-3.so.0
402 %dir %{_libdir}/gtk-3.0
403 %dir %{_libdir}/gtk-3.0/modules
404 %dir %{_libdir}/gtk-3.0/%{abivers}
405 %dir %{_libdir}/gtk-3.0/%{abivers}/engines
406 %dir %{_libdir}/gtk-3.0/%{abivers}/theming-engines
407 %dir %{_libdir}/gtk-3.0/%{abivers}/immodules
408 %dir %{_libdir}/gtk-3.0/%{abivers}/printbackends
409 %ghost %{_libdir}/gtk-3.0/%{abivers}/gtk.immodules
410 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-file.so
411 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-lpr.so
412 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-am-et.so
413 %{?with_broadway:%attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-broadway.so}
414 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-cedilla.so
415 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-cyrillic-translit.so
416 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-inuktitut.so
417 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-ipa.so
418 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-multipress.so
419 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-thai.so
420 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-ti-er.so
421 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-ti-et.so
422 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-viqr.so
424 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-wayland.so
425 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-waylandgtk.so
427 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/immodules/im-xim.so
428 %{_libdir}/girepository-1.0/Gdk-3.0.typelib
429 %{_libdir}/girepository-1.0/GdkX11-3.0.typelib
430 %{_libdir}/girepository-1.0/Gtk-3.0.typelib
432 %dir %{_sysconfdir}/gtk-3.0
433 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/gtk-3.0/im-multipress.conf
434 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.ColorChooser.gschema.xml
435 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.Debug.gschema.xml
436 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.EmojiChooser.gschema.xml
437 %{_datadir}/glib-2.0/schemas/org.gtk.Settings.FileChooser.gschema.xml
438 %dir %{_datadir}/themes/Default/gtk-3.0
439 %{_datadir}/themes/Default/gtk-3.0/gtk-keys.css
440 %dir %{_datadir}/themes/Emacs
441 %dir %{_datadir}/themes/Emacs/gtk-3.0
442 %{_datadir}/themes/Emacs/gtk-3.0/gtk-keys.css
443 %{?with_broadway:%{_mandir}/man1/broadwayd.1*}
444 %{_mandir}/man1/gtk-launch.1*
445 %{_mandir}/man1/gtk-query-immodules-3.0.1*
447 %files -n gtk-update-icon-cache
448 %defattr(644,root,root,755)
449 %attr(755,root,root) %{_bindir}/gtk-encode-symbolic-svg
450 %attr(755,root,root) %{_bindir}/gtk-update-icon-cache
451 %{_mandir}/man1/gtk-encode-symbolic-svg.1*
452 %{_mandir}/man1/gtk-update-icon-cache.1*
455 %defattr(644,root,root,755)
457 %attr(755,root,root) %{_bindir}/gtk-builder-tool
458 %attr(755,root,root) %{_bindir}/gtk-query-settings
459 %attr(755,root,root) %{_libdir}/libgailutil-3.so
460 %attr(755,root,root) %{_libdir}/libgdk-3.so
461 %attr(755,root,root) %{_libdir}/libgtk-3.so
462 %{_includedir}/gail-3.0
463 %{_includedir}/gtk-3.0
464 %{_aclocaldir}/gtk-3.0.m4
465 %{_pkgconfigdir}/gail-3.0.pc
466 %{_pkgconfigdir}/gdk-3.0.pc
467 %{_pkgconfigdir}/gdk-x11-3.0.pc
468 %{_pkgconfigdir}/gtk+-3.0.pc
469 %{_pkgconfigdir}/gtk+-unix-print-3.0.pc
470 %{_pkgconfigdir}/gtk+-x11-3.0.pc
472 %{_pkgconfigdir}/gdk-broadway-3.0.pc
473 %{_pkgconfigdir}/gtk+-broadway-3.0.pc
476 %{_pkgconfigdir}/gdk-wayland-3.0.pc
477 %{_pkgconfigdir}/gtk+-wayland-3.0.pc
479 %{_datadir}/gettext/its/gtkbuilder.its
480 %{_datadir}/gettext/its/gtkbuilder.loc
482 %{_datadir}/gir-1.0/Gdk-3.0.gir
483 %{_datadir}/gir-1.0/GdkX11-3.0.gir
484 %{_datadir}/gir-1.0/Gtk-3.0.gir
485 %{_mandir}/man1/gtk-builder-tool.1*
486 %{_mandir}/man1/gtk-query-settings.1*
488 %if %{with static_libs}
490 %defattr(644,root,root,755)
491 %{_libdir}/libgailutil-3.a
492 %{_libdir}/libgdk-3.a
493 %{_libdir}/libgtk-3.a
498 %defattr(644,root,root,755)
499 %{_gtkdocdir}/gail-libgail-util3
505 %defattr(644,root,root,755)
506 %attr(755,root,root) %{_bindir}/gtk3-demo
507 %attr(755,root,root) %{_bindir}/gtk3-demo-application
508 %attr(755,root,root) %{_bindir}/gtk3-icon-browser
509 %attr(755,root,root) %{_bindir}/gtk3-widget-factory
510 %{_datadir}/glib-2.0/schemas/org.gtk.Demo.gschema.xml
511 %{_datadir}/glib-2.0/schemas/org.gtk.exampleapp.gschema.xml
512 %{_desktopdir}/gtk3-demo.desktop
513 %{_desktopdir}/gtk3-icon-browser.desktop
514 %{_desktopdir}/gtk3-widget-factory.desktop
515 %{_iconsdir}/hicolor/*/apps/gtk3-demo-symbolic.symbolic.png
516 %{_iconsdir}/hicolor/*/apps/gtk3-demo.png
517 %{_iconsdir}/hicolor/*/apps/gtk3-widget-factory-symbolic.symbolic.png
518 %{_iconsdir}/hicolor/*/apps/gtk3-widget-factory.png
519 %{_mandir}/man1/gtk3-demo.1*
520 %{_mandir}/man1/gtk3-demo-application.1*
521 %{_mandir}/man1/gtk3-icon-browser.1*
522 %{_mandir}/man1/gtk3-widget-factory.1*
523 %{_examplesdir}/%{name}-%{version}
527 %defattr(644,root,root,755)
528 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-cups.so
533 %defattr(644,root,root,755)
534 %attr(755,root,root) %{_libdir}/gtk-3.0/%{abivers}/printbackends/libprintbackend-papi.so